#pragma once
#include "RenderTech.h"
#include "..\\IO\\MeshRender.h"
class CRenderStaticMesh : public RenderTech
{
public:
	CRenderStaticMesh(void);
	virtual ~CRenderStaticMesh(void);

	virtual HRESULT OnD3D11CreateDevice(ID3D11Device* pd3dDevice, 
		const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc, CDirectoryUtil* pDirUtil, void* pUserContext);
	virtual HRESULT OnD3D11ResizedSwapChain( ID3D11Device* pd3dDevice, 
		IDXGISwapChain* pSwapChain, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc, CDirectoryUtil* pDirUtil, void* pUserContext );
	virtual void OnD3D11ReleasingSwapChain( void* pUserContext );
	virtual void OnD3D11DestroyDevice( void* pUserContext );
	virtual void InitEffectsVariables();
	virtual void ReloadEffectsDebug(ID3D11Device* pd3dDevice, CDirectoryUtil* pDirUtil);
	virtual void OnD3D11FrameRender( ID3D11Device* pd3dDevice, ID3D11DeviceContext* pd3dImmediateContext, 
		CBaseCamera* pViewCamera, CDirectoryUtil* pDirUtil, double fTime, float fElapsedTime, void* pUserContext );

public:
	CMeshRender* m_pModelRender;
	ID3DX11EffectTechnique* m_pRenderTech;
};

static const char* RENDERSTATICMESHTECHS[] = 
{
	"RenderStaticMesh_Pos",
	"RenderStaticMesh_PosNorm", 
	"RenderStaticMesh_PosNormUv", 
	"RenderStaticMesh_PosNormUvTang", 
};
